package com.softer.wxzj.mapper;

import com.softer.wxzj.entity.BaseBuildInfo;
import com.softer.wxzj.entity.BaseRegionInfo;
import com.softer.wxzj.entity.MaintenanceEquipment;
import com.softer.wxzj.entity.TempEquipment;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface MaintenanceEquipmentMapper {
    int deleteByPrimaryKey(String id);

    int insert(MaintenanceEquipment record);

    int insertSelective(MaintenanceEquipment record);

    MaintenanceEquipment selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(MaintenanceEquipment record);

    int updateByPrimaryKey(MaintenanceEquipment record);

    /**
     * 竣工
     *
     * @param id   自然幢ID
     * @param date 竣工日期
     * @param name 操作人
     * @return 操作结果
     */
    int finish(@Param("id") String id, @Param("date") String date, @Param("name") String name);

    /**
     * 维修对象维护列表
     *
     * @param baseRegionInfo 查询实体
     * @return 小区列表
     */
    List<BaseRegionInfo> getRegionList(BaseRegionInfo baseRegionInfo);

    /**
     * 维修对象维护列表
     *
     * @param baseBuildInfo 查询实体
     * @return 自然幢列表
     */
    List<BaseBuildInfo> getBuildList(BaseBuildInfo baseBuildInfo);

    /**
     * 根据自然幢ID查询公共设施
     *
     * @param tempEquipment 查询实体
     * @return 公共设施列表
     */
    List<TempEquipment> getEquipmentList(TempEquipment tempEquipment);

    /**
     * 根据小区ID查询公共设施
     *
     * @param tempEquipment 查询实体
     * @return 公共设施列表
     */
    List<TempEquipment> getEquipmentListByRegionId(TempEquipment tempEquipment);

    /**
     * 根据维修对象类别查询维修对象列表
     *
     * @param id 维修对象类别
     * @return 维修对象列表
     */
    List<TempEquipment> getEquipmentListByObjectId(@Param("id") String id);

    /**
     * 模糊查询维修对象维护列表
     *
     * @param fuzzy 模糊查询字段
     * @return 小区列表
     */
    List<BaseRegionInfo> fuzzyRegionList(String fuzzy);

    /**
     * 模糊查询
     * 根据自然幢ID查询公共设施
     *
     * @param tempEquipment 查询实体
     * @return 公共设施列表
     */
    List<TempEquipment> fuzzyEquipmentList(TempEquipment tempEquipment);

    /**
     * 模糊查询
     * 维修对象维护列表
     *
     * @param baseBuildInfo 查询实体
     * @return 自然幢列表
     */
    List<BaseBuildInfo> fuzzyBuildList(BaseBuildInfo baseBuildInfo);

    /**
     * 校验项目中是否包含该对象
     * @param id 对象ID
     * @return 项目ID集合
     */
    List<String> checkProject(String id);

    /**
     * 查询详情
     * @param id
     * @return
     */
    MaintenanceEquipment getInfoById(String id);
    /**
     * 外网查询查询维修对象列表
     *
     * @param tempEquipment 查询实体
     * @return 维修对象列表
     */
    List<TempEquipment> getEquipmentListByOperNo(TempEquipment tempEquipment);
}